package services;

import java.util.List;

import javax.ejb.Local;

import common.services.GenericService;

import entities.Rodamiento;
import entities.RodamientoStock;
import entities.VO.RodamientoStockVO;

@Local
public interface RodamientoService extends GenericService<Rodamiento>{
	/**
	 * Disminuye el stock y devuelve un int si hay stockFaltante.
	 */
	public int disminuirStock(Integer cantidad, RodamientoStock rodamiento);

	public Integer obtenerStock(Rodamiento rodamiento);
	
	public Rodamiento find(Rodamiento rodamiento);
	
	public Boolean existeRodamiento(Rodamiento rodamiento);
	
	public Rodamiento findRodamientoStock(Rodamiento rodamiento);
	
	public RodamientoStockVO findVOByID(Object id);
	
	public List<RodamientoStockVO> findAllVO();

	public void altaRodamiento(RodamientoStockVO rodamientoStockVO);
	
	/**
	 * Aumenta el stock del rodamiento y se fija si hay algun pedido de venta en la base de datos
	 * que tenga este rodamiento. Si lo encuentra, genera un remito a la oficina de ventas que
	 * envio el pedido de venta. Si hay mas de 1 pedido de venta que tiene ese rodamiento, y no se 
	 * pueden satisfacer las cantidades de todos, se prioriza por fecha de recepcion del pedido.
	 */
	public void actualizarRodamiento(RodamientoStockVO rodamientoStockVO);
	
	public List<RodamientoStock> findRodamientosConStockNuevo();
}
